
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using MonoTouch.CoreFoundation;
using MonoTouch.Foundation;
using MonoTouch.ObjCRuntime;
using MonoTouch.CoreAnimation;
using MonoTouch.CoreLocation;
using MonoTouch.MapKit;
using MonoTouch.UIKit;
using MonoTouch.CoreGraphics;

namespace Three20
{

	public partial class TTUserInfo
	{
		static Selector selTopicP = new Selector ("topic");
		static Selector selSetTopicP = new Selector("setTopic:");
		
		static Selector selWeakP = new Selector("weak");
		static Selector selSetWeakP = new Selector("setWeak:");
		
		public virtual NSObject Topic {
			[Export ("topic")]
			get {
				if (IsDirectBinding) {
					return Runtime.GetNSObject (MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSend (this.Handle, selTopicP.Handle));
				} else {
					return Runtime.GetNSObject (MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper (this.SuperHandle, selTopicP.Handle));
				}
			}

			[Export ("setTopic:")]
			set {
				if (value == null)
					throw new ArgumentNullException ("value");
				if (IsDirectBinding) {
					MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (this.Handle, selSetTopicP.Handle, value.Handle);
				} else {
					MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr (this.SuperHandle, selSetTopicP.Handle, value.Handle);
				}
			}
		}
		
		
		public virtual NSObject Weak {
			[Export ("weak")]
			get {
				if (IsDirectBinding) {
					return Runtime.GetNSObject (MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSend (this.Handle, selWeakP.Handle));
				} else {
					return Runtime.GetNSObject (MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper (this.SuperHandle, selWeakP.Handle));
				}
			}

			[Export ("setWeak:")]
			set {
				if (value == null)
					throw new ArgumentNullException ("value");
				if (IsDirectBinding) {
					MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (this.Handle, selSetWeakP.Handle, value.Handle);
				} else {
					MonoTouch.ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr (this.SuperHandle, selSetWeakP.Handle, value.Handle);
				}
			}
		}

	}
}
